<?php
/**
 * 
 * Esta clase se utiliza para gene
 * @author Rosanna Paberli Jimenez Rosario
 * @since 20-marzo-2012.
 *
 */
class ObjetoCompaniaModel extends Model
{
	
	/**
	 * 
	 * Contiene la tabla del objeto de compania
	 * @var $_nameTable
	 */
	private $_nameTable = "SC_ObjetoCompania";
	

	public function __construct()
	{
		parent::Model();
	}
	
	/**
	 * 
	 * @param  $start
	 * @param  $offset
	 * @param  $sortname
	 * @param  $sortorder
	 */
	public function loadRegistros($start = false, $offset = false, $sortname = false, $sortorder = false)
	{
		
	     if($offset != false){
               $this->db->limit($offset, $start);
         }
		      
		 if($sortname != false && $sortorder != false){
		        $this->db->order_by($sortname, $sortorder);
		 }
		 
		 $query = $this->db->get($this->_nameTable);
		 return $this->_getArrayFromQueryResult($query);
	}
	
	/**
	 * buscar registros por id
	 * @param integer $id
	*/
    public function loadRegistrosById($id)
	{
		$query = $this->db->get_where($this->_nameTable, array('id_objeto' => $id));
		
		if($query->num_rows() == 0)
			return false;
		
			return new ObjetoTable($query->row());
		
	}
	
	/**
	 * 
	 * Obtiene todos los registros.
	 * @param unknown_type $resurt
	 */
	private function _getArrayFromQueryResult($resurt)
	{
		if($resurt->num_rows() == 0){
			return false;
		}
		
		$registros = array();
		
		foreach($resurt->result() as $record){
			$registros[] = new ObjetoTable($record);
		}
		
		return $registros;
	}
	
    /**
     * Agregar un registro
     * @param  $data
     */
	public function agregar($data)
	{
		if($this->db->insert($this->_nameTable, $data)){
			
			return true;
		}
		
			return false;
		
	}
	
	/**
	 * 
	 * Editar un registro
	 * @param  $data
	 * @param integer $id
	 */
	public function editar($data, $id)
	{
		if($this->db->update($this->_nameTable, $data, array("id_objeto" => $id))){
			
			return true;
		}
			return false;
	}
	
	
	/**
	 * Eliminar un registro.
	 * @param integer $id
	 */
	public function eliminar($id)
	{
		if($this->db->delete($this->_nameTable, array("id_objeto" => $id))){
			
			return true;
		}
		
		    return false;
	}

}

class ObjetoTable
{
	
	/**
	 * @var $_idObjeto;
	 */
	
	private $_idObjeto = 0;
	
	/**
	 * 
	 * @var $_tipoObjeto
	 */
	private $_tipoObjeto = "";
	
	/**
	 * @var $_descripcionObjeto
	 */
	private $_descripcionObjeto = "";
	
	/**
	 * 
	 * Enter description here ...
	 * @param unknown_type $objeto
	 */
	public function __construct($objeto)
	{
		$this->_idObjeto = $objeto->id_objeto;
		$this->_tipoObjeto = $objeto->tipo_objeto;
		$this->_descripcionObjeto = $objeto->descripcion_objeto;
		
	}
	
	/**
	 * 
	 * return $this->_idObjeto
	 */
	public function getIdObjeto()
	{
		return $this->_idObjeto;
	}
	
	/**
	 * 
	 * Set id Objeto
	 * @param integer $idObjeto
	 */
	public function setIdObjeto($idObjeto)
	{
		$this->_idObjeto = $idObjeto;
	}
	
	/**
	 * return $_tipoObjeto
	 */
	public function getTipoObjeto()
	{
		return $this->_tipoObjeto;
	}
	
	/**
	 * set tipoObjeto
	 * @param string $tipoObjeto
	 */
	public function setTipoObjeto($tipoObjeto)
	{
		$this->_tipoObjeto = $tipoObjeto;
	}
	
	/**
	 * 
	 * return $_descripcionObjeto
	 */
	public function getDescripcionObjeto()
	{
		return $this->_descripcionObjeto;
	}
	
	/**
	 * 
	 * @param text $descripcionobjeto
	 */
	public function setDescripcionObjeto($descripcionobjeto)
	{
		$this->_descripcionObjeto = $descripcionobjeto;
	}
}